﻿//    An irrational decimal fraction is created by concatenating the positive integers:
//
//    0.123456789101112131415161718192021...
//                 ^
//    It can be seen that the 12th digit of the fractional part is 1.
//
//    If dn represents the nth digit of the fractional part, find the value of the following expression.
//
//    d1 * d10 * d100 * d1000 * d10000 * d100000 * d1000000
//
// correct answer is 210

#light

let irrational =
    let rec inner n =
        seq {   let s = n.ToString() 
                for c in s do yield (int c - int '0')
                yield! inner (n+1) }
    inner 1
    
let sumDigits =
    List.map (fun itm -> Seq.nth (itm-1) irrational)
    >> List.fold (fun itm acc -> itm * acc) 1

let solve() = sumDigits [1;10;100;1000;10000;100000;1000000]
